package org.wu.framework.ssh.server.platform.domain.model.ssh.server.config;

import org.wu.framework.web.response.Result;
import org.wu.framework.ssh.server.platform.domain.model.ssh.server.config.SshServerConfig;
import java.util.List;
import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
/**
 * describe ssh服务器信息 
 *
 * @author Jia wei Wu
 * @date 2025/09/13 10:07 晚上
 * @see org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyDomainRepository 
 **/

public interface SshServerConfigRepository {


    /**
     * describe 新增ssh服务器信息
     *
     * @param sshServerConfig 新增ssh服务器信息     
     * @return {@link  Result<SshServerConfig>} ssh服务器信息新增后领域对象     
     
     * @author Jia wei Wu
     * @date 2025/09/13 10:07 晚上
     **/

    Result<SshServerConfig> story(SshServerConfig sshServerConfig);

    /**
     * describe 批量新增ssh服务器信息
     *
     * @param sshServerConfigList 批量新增ssh服务器信息     
     * @return {@link Result<List<SshServerConfig>>} ssh服务器信息新增后领域对象集合     
     
     * @author Jia wei Wu
     * @date 2025/09/13 10:07 晚上
     **/

    Result<List<SshServerConfig>> batchStory(List<SshServerConfig> sshServerConfigList);

    /**
     * describe 查询单个ssh服务器信息
     *
     * @param sshServerConfig 查询单个ssh服务器信息     
     * @return {@link Result<SshServerConfig>} ssh服务器信息DTO对象     
     
     * @author Jia wei Wu
     * @date 2025/09/13 10:07 晚上
     **/

    Result<SshServerConfig> findOne(SshServerConfig sshServerConfig);

    /**
     * describe 查询多个ssh服务器信息
     *
     * @param sshServerConfig 查询多个ssh服务器信息     
     * @return {@link Result<List<SshServerConfig>>} ssh服务器信息DTO对象     
     
     * @author Jia wei Wu
     * @date 2025/09/13 10:07 晚上
     **/

    Result<List<SshServerConfig>> findList(SshServerConfig sshServerConfig);

    /**
     * describe 分页查询多个ssh服务器信息
     *
     * @param size 当前页数
     * @param current 当前页
     * @param sshServerConfig 分页查询多个ssh服务器信息     
     * @return {@link Result<LazyPage<SshServerConfig>>} 分页ssh服务器信息领域对象     
     
     * @author Jia wei Wu
     * @date 2025/09/13 10:07 晚上
     **/

    Result<LazyPage<SshServerConfig>> findPage(int size,int current,SshServerConfig sshServerConfig);

    /**
     * describe 删除ssh服务器信息
     *
     * @param sshServerConfig 删除ssh服务器信息     
     * @return {@link Result<SshServerConfig>} ssh服务器信息     
     
     * @author Jia wei Wu
     * @date 2025/09/13 10:07 晚上
     **/

    Result<SshServerConfig> remove(SshServerConfig sshServerConfig);

    /**
     * describe 是否存在ssh服务器信息
     *
     * @param sshServerConfig 是否存在ssh服务器信息     
     * @return {@link Result<Boolean>} ssh服务器信息是否存在     
     
     * @author Jia wei Wu
     * @date 2025/09/13 10:07 晚上
     **/

    Result<Boolean> exists(SshServerConfig sshServerConfig);

}